/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.oea.servlets;

import com.oea.hibernate.entities.Question;
import com.oea.hibernate.entities.Test_Question;
import com.oea.hibernate.entities.Topic;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;

/**
 *
 * @author unnati
 */
public class RemoveTestQuestionAction extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */

            Test_Question tq = new Test_Question();
            Long test_id = Long.parseLong(request.getSession().getAttribute("test_id").toString());
            Long que_id = Long.parseLong(request.getParameter("id"));

           
            Long test_que_id = tq.getIdByTestAndQuestionId(que_id,test_id);
            
            boolean deleted = tq.delete(test_que_id);
            
            JSONObject json=new JSONObject();
            if(deleted)
            {
                 List<Question> li_added_test_question=Question.GetAllAddedQuestion(test_id);
            for (Question question : li_added_test_question) 
            {
                question.setTopic();
            }
            request.getSession().setAttribute("li_added_test_question", li_added_test_question);
            
            for (Question que : li_added_test_question) 
            {
                 Long qid=que.getId();
                 
            }
             Double pagelink=Math.ceil((float)li_added_test_question.size()/10);
             request.getSession().setAttribute("pagelink", pagelink);
          
           List<Question> filtered_list=new ArrayList<>();
            int end = 10;
            if (li_added_test_question.size() < 10) 
            {
                    end = li_added_test_question.size();
            }
            
            for (int i = 0; i < end; i++) 
            {

                filtered_list.add(li_added_test_question.get(i));
            }
                
            request.getSession().setAttribute("filter_li_added_test_que", filtered_list);

                json.put("done", "done");
            }
            out.println(json);
//
//            if (deleted) {
//                
////            Long subid=(Long) request.getSession().getAttribute("test_id");
////                  
////            List<Topic> list_topic= (List<Topic>) new Topic().getAll(); //get all topics
////            ArrayList<Topic> arr_list_topic=new ArrayList<>();
////            
////            for (Topic topic : list_topic)
////            {
////                
////                if(topic.getSubid()==subid)
////                {
////                    arr_list_topic.add(topic);
////                   
////                }
////                
////            }
////            request.getSession().setAttribute("arr_list_topic", arr_list_topic);
//
//                tq = new Test_Question();
//                tq.setTid(test_id);
//
//                List<Test_Question> li_test_que = tq.getAllById(); //get all test_question by testid
//
//                ArrayList<Question> li_added_test_que = new ArrayList<>();//question list of added question into test
//
//                for (Test_Question test_Question : li_test_que) {
//
//                    Long qid = test_Question.getQid();
//
//                    Question q = new Question();
//                    q = (Question) q.getById(qid);
//
//                    li_added_test_que.add(q);
//
//                }
//                request.getSession().setAttribute("li_added_test_que", li_added_test_que);
//
//                Double iteration_question = Math.ceil((float) li_added_test_que.size() / 5);
//                request.getSession().setAttribute("iteration_question", iteration_question);
//
//                ArrayList<Question> filtered_list = new ArrayList<>();
//                int end = 5;
//                if (li_added_test_que.size() < 5) {
//                    end = li_added_test_que.size();
//                }
//
//                for (int i = 0; i < end; i++) {
//
//                    filtered_list.add(li_added_test_que.get(i));
//                }
//                // request.getSession().setAttribute("arr_list_topic", arr_list_topic);
//                request.getSession().setAttribute("filter_li_added_test_que", filtered_list);
//
//                JSONObject json = new JSONObject();
//                json.put("done", "done");
//                out.println(json);
//            }

        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
